package holiday_demo.demo02;

/*
匿名内部类的定义
接口名称 对象名=new 接口名称（）{
    //覆盖重写所有的抽象方法
}
匿名内部类的注意点：
1.匿名内部类，在创建对象的时候，只能使用唯一一次
如果希望多次创建对象，而且类的内容一样的话，建议是单独定义的实现接口的类
2.匿名对象在调用方法是只能调用唯一一次
3.匿名内部类是省略了实现类/子类的名称，匿名对象是神略了对象的名城
 */
public class DemoMain {
    public static void main(String[] args) {
        //传统类的调用
        MyInterface myInterface=new MyInterfaceImpl();
        myInterface.method();

        //创建匿名内部类的
        MyInterface annonymity=new MyInterface() {
            @Override
            public void method() {
                System.out.println("我是匿名内部类！");
            }
        };
        //匿名内部类的调用
        annonymity.method();

        //匿名对象匿名内部类的创建和调用方式
        new MyInterface(){
            @Override
            public void method() {
                System.out.println("我是匿名对象匿名内部类的！");
            }
        }.method();
    }
}
